package display;

import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.springframework.web.context.*;

import util.ClienteDTO;
import util.ClienteAssembler;
import domain.ClienteRepository;
import domain.Cliente;

/**
* Clase controladora que se encarga de consultar los datos de la base de datos y enviarlos a la presentacion  para ser listados.
* @version 1, 5/10/2014
* @author Diego Cordero, Bryan Morales.
*/
public class ListaClientes extends PageController {
  
  /** 
	 * Se encarga de consultar los datos de la base de datos y enviarlos a la vista para ser listados 	 	 	 
	 * @version 1, 5/10/2014
	 * @author Diego Cordero, Bryan Morales.	 
	 * @return void
	 */
  public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException, IOException {
	  
	ClienteRepository objs = (ClienteRepository) context.getBean("clienteRepository");
    
    try {
			Collection lista = objs.findAll();
			List data = new ArrayList();
			Iterator itr = lista.iterator();
			while (itr.hasNext()) {
				Cliente obj = (Cliente)itr.next();
				ClienteDTO dto = ClienteAssembler.createDTO(obj);				
				data.add(dto);				
			}
			
		  request.setAttribute("clientes",data);		 
		  forward("/listaClientes.jsp",request,response);		  
	} catch (Exception e) {
		request.setAttribute("mensaje",e.getMessage()+" ListaClientes.");
		forward("/paginaError.jsp",request,response);
	}
  }
}